package cn.ffcs.uec.outStaff.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import cn.ffcs.uec.organization.model.UecOrgOrgs;
import cn.ffcs.uec.outStaff.dao.UecOutStaffDao;
import cn.ffcs.uom.common.constants.BaseUnitConstants;
import cn.ffcs.uom.common.model.UomEntity;
import cn.ffcs.uom.common.util.ApplicationContextUtil;
import cn.ffcs.uom.common.util.StrUtil;
import lombok.Getter;
import lombok.Setter;

public class UecOutStaffInfo extends UomEntity implements Serializable,Cloneable {

	private static final long serialVersionUID = 5527378653573342989L;

	/**
	 * 员工标识
	 * 
	 * @return
	 */
	public Long getOutStaffId() {
		return super.getId();
	}

	public void setOutStaffId(Long outStaffId) {
		super.setId(outStaffId);
	}

	/**
	 * 账期
	 */
	@Getter
	@Setter
	private Long monthId;//
	/**
	 * 主键
	 */
	@Getter
	@Setter
	private String pkPsnMsg;//
	/**
	 * 外包人员组织
	 */
	@Getter
	@Setter
	private String pkOrg;
	/**
	 * 外包人员编码
	 */
	@Getter
	@Setter
	private String psnCode;
	/**
	 * 姓名
	 */
	@Getter
	@Setter
	private String psnName;
	/**
	 * 身份证号
	 */
	@Getter
	@Setter
	private String idNum;
	/**
	 * 性别
	 */
	@Getter
	@Setter
	private String sex;
	/**
	 * 出生日期
	 */
	@Getter
	@Setter
	private String birthDate;
	/**
	 * 最高学历
	 */
	@Getter
	@Setter
	private String highestEducation;
	/**
	 * 全日制学历
	 */
	@Getter
	@Setter
	private String fulltimeEducation;
	/**
	 * 学位
	 */
	@Getter
	@Setter
	private String degree;
	/**
	 * 从事电信外包业务年限
	 */
	@Getter
	@Setter
	private String busiLife;
	/**
	 * 是否发送
	 */
	@Getter
	@Setter
	private String isSend;
	/**
	 * 删除标志
	 */
	@Getter
	@Setter
	private Long dr;
	/**
	 * 手机号码
	 */
	@Getter
	@Setter
	private String mobtelePhone;
	/**
	 * 办公电话
	 */
	@Getter
	@Setter
	private String officePhone;
	/**
	 * 时间戳
	 */
	@Getter
	@Setter
	private String ts;
	/**
	 * 国际外包人员主键
	 */
	@Getter
	@Setter
	private String pkHcmpsnMsg;
	/**
	 * 人员标识
	 */
	@Getter
	@Setter
	private String psnFlag;
	/**
	 * 是否装维
	 */
	@Getter
	@Setter
	private String isZW;
	/**
	 * 是否渠道
	 */
	@Getter
	@Setter
	private String isQD;

	// 2018年5月23日，外包人员新增字段
	/*
	 * 人力资源组织
	 */
	@Getter
	@Setter
	private String pkHrorg;       //
	/*
	 * 曾用名
	 */
	@Getter
	@Setter
	private String usedName;//
	/*
	 * 民族
	 */
	@Getter
	@Setter
	private String nationality;//
	/*
	 * 户口性质
	 */
	@Getter
	@Setter
	private String characterrpr;//
	/*
	 * 户籍地址
	 */
	@Getter
	@Setter
	private String censusAddr;//
	/*
	 * 档案所在地
	 */
	@Getter
	@Setter
	private String fileAddress;//
	/*
	 * 健康状况
	 */
	@Getter
	@Setter
	private String health;//
	/*
	 * 婚姻状况
	 */
	@Getter
	@Setter
	private String marital;//
	/*
	 * 本人户口地址
	 */
	@Getter
	@Setter
	private String glbdef12;//
	/*
	 * 家庭地址
	 */
	@Getter
	@Setter
	private String glbdef13;//
	/*
	 * 家庭电话
	 */
	@Getter
	@Setter
	private String homePhone;//
	/*
	 * 参加工作日期
	 */
	@Getter
	@Setter
	private String joinWorkDate;//
	/*
	 * 进入电信系统来源
	 */
	@Getter
	@Setter
	private String glbdef2;//
	/*
	 * 进入电信系统日期
	 */
	@Getter
	@Setter
	private String glbdef3;//
	/*
	 * 工龄
	 */
	@Getter
	@Setter
	private String def3;//
	/*
	 * 本企业工龄
	 */
	@Getter
	@Setter
	private String def4;//
	/*
	 * 电子邮件
	 */
	@Getter
	@Setter
	private String email;//
	/*
	 * 紧急联系人姓名
	 */
	@Getter
	@Setter
	private String glbdef7;//
	/*
	 * 紧急联系人电话
	 */
	@Getter
	@Setter
	private String glbdef8;//
	/*
	 * 参加党团日期
	 */
	@Getter
	@Setter
	private String joinPolityDate;//
	/*
	 * 政治面貌
	 */
	@Getter
	@Setter
	private String polity;//
	/*
	 * 职业资格
	 */
	@Getter
	@Setter
	private String prof;//
	/*
	 * 专业技术职务
	 */
	@Getter
	@Setter
	private String titleTechpost;//
	/*
	 * 预计退休日期
	 */
	@Getter
	@Setter
	private String glbdef15;//
	/*
	 * 离退休日期
	 */
	@Getter
	@Setter
	private String retireDate;//
	/*
	 * 创建人
	 */
	@Getter
	@Setter
	private String creator;//
	/*
	 * 创建时间
	 */
	@Getter
	@Setter
	private String creationTime;//
	/*
	 * 启用状态
	 */
	@Getter
	@Setter
	private Long enableState;//
	/*
	 * 修改人
	 */
	@Getter
	@Setter
	private String modifier;//
	/*
	 * 修改时间
	 */
	@Getter
	@Setter
	private String modifiedTime;//
	/*
	 * 身故日期
	 */
	@Getter
	@Setter
	private String dieDate;//
	/*
	 * 身故说明
	 */
	@Getter
	@Setter
	private String dieRemark;//
	/*
	 * 历史成员
	 */
	@Getter
	@Setter
	private String ishiskeypsn;//
	/*
	 * UID主键
	 */
	@Getter
	@Setter
	private String psnUid;//
	/*
	 * 是否承包经营个体
	 */
	@Getter
	@Setter
	private String glbdef14;//
	/*
	 * 是否门店营业员
	 */
	@Getter
	@Setter
	private String isshopassist;//
	
	/*2018年6月4号*/
	
	/*
	 * 进入本单位时间
	 */
	@Getter
	@Setter
	private String enterUnitTime;

	/*
	 * 人员属性
	 */
	@Getter
	@Setter
	private String property;//1:外包、2：合同制、3：派遣制、4：其他
	
//	@Getter
//	@Setter
//	private String joinCategory;
	
	/*
	 * 备注
	 */
	@Getter
	@Setter
	private String memo;
	/*
	 * 参加选聘报考类别
	 */
	@Getter
	@Setter
	private String joinCategory;
	/*
	 * 证件类型
	 */
	@Getter
	@Setter
	private String idtype;

	public UecOutStaffInfo() {
		super();
	}

	public static UecOutStaffInfo newInstance() {
		return new UecOutStaffInfo();
	}

	/**
	 * 获取dao
	 * 
	 * @return
	 */
	public UecOutStaffDao repository() {
		return (UecOutStaffDao) ApplicationContextUtil.getBean("uecOutStaffDao");
	}

	/**
	 * 获取组织名称
	 */
	public String getPkHrOrgName() {
		if (!StrUtil.isNullOrEmpty(this.getPkHrorg())) {
			String sql = " SELECT * FROM  UEC_ORG_ORGS T WHERE T.STATUS_CD = ? AND T.PK_ORG = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(BaseUnitConstants.ENTT_STATE_ACTIVE);
			params.add(this.getPkHrorg());
			List<UecOrgOrgs> list = this.repository().jdbcFindList(sql, params, UecOrgOrgs.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	@Override  
    public Object clone() {  
        UecOutStaffInfo outStaffInfo = null;  
        try{  
        	outStaffInfo = (UecOutStaffInfo) super.clone();  
        }catch(CloneNotSupportedException e) {  
            e.printStackTrace();  
        }  
        return outStaffInfo;  
    }
	
	
}
